package com.example.jimanguang.Repositories;

import com.example.jimanguang.Entity.User;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.UUID;

public interface UserRepository extends JpaRepository<User, UUID> {
  //后台管理信息获取
   //检验用户是否存在
   Integer countByUserName(String userName);
//统计用户数量
    Integer countAllBy();

    //查看所用用户数据
    List<User>  findAllByOrderByCreateTimeDesc();
    //分页返回所有用户数据
    List<User> findAllByOrderByCreateTimeDesc(Pageable pageable);
    //返回关机字搜索
//@Param 注解的作用是给参数命名，可以在 XML 映射文件中通过 #{参数名} 的方式引用这个参数。
 @Query("select u from User u where u.userName like concat('%',:kw,'%') or u.nickName like " +
         " concat('%',:kw,'%')  or u.phone like concat('%',:kw,'%') ")
 List<User>  findByQuery(@Param("kw") String keyWord);

    //前端个人信息
  //查看个人信息是否存在用于登录
   User findUserByUserNameAndPassword(String userName,String password );

   //查看投影内容用于验证登录
    List<UserProjection> findUserByUserName(String user);




    

}
